Parallel computing systems include a number of servers that execute resource intensive jobs on various amounts of data. Such systems are applicable in a variety of technologies, such as data mining, text indexing, trace data analysis for complex networks, machine learning, data clustering, machine translation and/or graphical processing.
Each of the resource intensive jobs includes a plurality of computing tasks (e.g., parallel computing tasks). Because the servers share in the execution of the resource intensive jobs, the plurality of computing tasks are executed generally in parallel over different data sets. When a particular task run on one of the servers, one or more resources (e.g., a processor (CPU) time, I/O capacity, network bandwidth and/or the like) may be fully utilized or overloaded while other resources are underutilized. As a result, current parallel computing systems often provide a workload throughput that is well below potential. Such inefficiency results in unnecessary capital expenditures due to additional servers and high operating costs due to inefficient power consumption and resource utilization.